package net.sea.commons.util.zip;

import java.io.File;


/**
 * 
 * ZipEntry排除过滤器，符合匹配条件的排除
 *
 * @author wangwei 
 */

public class ZipEntryExcludeFilter extends ZipEntryIncludeFilter {
	public ZipEntryExcludeFilter() {
		super();
	}

	/**
	 * 构造函数
	 * 
	 * @param dirPattern  目录匹配串，语法如下：<br>
	 * 		/	在根目录<br>
	 * 		?	匹配任何第一级目录(不包含子目录，如二级、三级目录等）<br>
	 * 		* 	匹配任何目录及其子目录<br>
	 * 		lib	第一级目录，且名称为lib<br>
	 * 		&#42;/lib		在目录名为lib的目录中<br>  
	 * 		lib/&#42;		lib目录的子目录中<br>
	 * 		dir1/dir2/&#42;	匹配dir1/dir2目录或其所有子目录<br> 
	 * 		dir1/dir2/dir3	匹配dir1/dir2/dir3目录<br> 
	 * 		&#42;/dir1/dir2	匹配路径中含有dir1/dir2的目录<p>
	 *  
	 * @param filenamePattern 文件名称匹配串（不带路径），语法如下：<br>
	 * 		filename1.jar	匹配文件名称为filename1.jar<br>
	 * 		*.ext			匹配	所有扩展名为ext的文件<br>
	 * 		filename1.*		匹配所有文件名为filename1，扩展名为任意的文件<br>
	 * 		*.*				匹配所有文件<br>
	 * 		*				匹配所有文件<br>
	 * 		abc*.jar		匹配所有以abc开头的jar文件<br>
	 * 		*abc.jar		匹配所有以abc结尾的jar文件<br>
	 * 		*abc*.jar		匹配所有包含abc的jar文件<br>
	 * 		ab*cd.jar		匹配所有以ab开头，cd结尾的文件<br>
	 */
	public ZipEntryExcludeFilter(String dirPattern,String filenamePattern) {
		super(dirPattern,filenamePattern);
	}
	
	public boolean accept(File dir, String name) {
		boolean accepted=super.accept(dir, name);
		
		return !accepted;
	}

	public String toString() {
		return "ZipExcludeFilter:"+this.dirPattern+","+this.filenamePattern;
	}

}